<?php

namespace App\Models;

use CodeIgniter\Model;

// 类名需与分类一致（首字母大写，如“环保行动家”则为 EnvironmentalistModel）
class IndieDevModel extends Model
{
    // 存储数据文件路径（请确保JSON文件已放在对应位置）
    private $dataPath;

    public function __construct()
    {
        // 指向 writeable/data 下的JSON数据文件（文件名可自定义）
        $this->dataPath = WRITEPATH . 'data/indie_dev_heroes.json';
    }

    /**
     * 方法1：获取所有英雄的“ID”和“姓名”（用于首页表格）
     * @return array 格式：[{id:1, name:"张三"}, {id:2, name:"李四"}]
     */
    public function getAllHeroesNames()
    {
        // 读取JSON文件内容
        $jsonContent = file_get_contents($this->dataPath);
        // 转为PHP数组
        $allHeroes = json_decode($jsonContent, true);

        // 只提取“ID”和“姓名”（减少数传输）
        $heroesNames = [];
        foreach ($allHeroes as $hero) {
            $heroesNames[] = [
                'id' => $hero['id'],       // 对应你数据中的“唯一标识符”字段
                'name' => $hero['name']    // 对应你数据中的“英雄姓名”字段
            ];
        }
        return $heroesNames;
    }

    /**
     * 方法2：按ID获取单个英雄的完整信息
     * @param int $id 英雄的唯一标识符
     * @return array|null 完整英雄数据（无匹配则返回null）
     */
    public function getHeroById($id)
    {
        $jsonContent = file_get_contents($this->dataPath);
        $allHeroes = json_decode($jsonContent, true);

        // 遍历数组，找到ID匹配的英雄
        foreach ($allHeroes as $hero) {
            if ($hero['id'] == $id) {
                return $hero; // 返回完整8个字段（如id、name、city、image、works等）
            }
        }
        return null; // 无匹配ID时返回null（可在Controller中处理“英雄不存在”场景）
    }
}